#include "number.h"

void Dis_Num(uint8_t DIG, uint8_t NUM)
{
    switch(DIG)
    {
        case 1:
            HAL_GPIO_WritePin(DIG1_GPIO_Port,DIG1_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(DIG2_GPIO_Port,DIG2_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG3_GPIO_Port,DIG3_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG4_GPIO_Port,DIG4_Pin,GPIO_PIN_SET);
        break;
        case 2:
            HAL_GPIO_WritePin(DIG1_GPIO_Port,DIG1_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG2_GPIO_Port,DIG2_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(DIG3_GPIO_Port,DIG3_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG4_GPIO_Port,DIG4_Pin,GPIO_PIN_SET);
        break;
        case 3:
            HAL_GPIO_WritePin(DIG1_GPIO_Port,DIG1_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG2_GPIO_Port,DIG2_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG3_GPIO_Port,DIG3_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(DIG4_GPIO_Port,DIG4_Pin,GPIO_PIN_SET);
        break;
        case 4:
            HAL_GPIO_WritePin(DIG1_GPIO_Port,DIG1_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG2_GPIO_Port,DIG2_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG3_GPIO_Port,DIG3_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DIG4_GPIO_Port,DIG4_Pin,GPIO_PIN_RESET);
        break;
    }
    switch(NUM)
    {
        case 1:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 2:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 3:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 4:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 5:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 6:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 7:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 8:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 9:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
        case 0:
            HAL_GPIO_WritePin(A_GPIO_Port,A_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(B_GPIO_Port,B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(C_GPIO_Port,C_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(D_GPIO_Port,D_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(E_GPIO_Port,E_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(F_GPIO_Port,F_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(G_GPIO_Port,G_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(DP_GPIO_Port,DP_Pin,GPIO_PIN_RESET);
        break;
    }
}

uint8_t NumFlag = 0;
void Dis_2Num(uint8_t Number)
{
    uint8_t Decade,Uint;
    Decade = Number/10;
    Uint = Number%10;
    if(NumFlag == 0){
        Dis_Num(2,Decade);
        Dis_Num(3,Uint);
        NumFlag = 1;
    }
    else{
        Dis_Num(3,Uint);
        Dis_Num(2,Decade);
        NumFlag = 0;
    }
}
